|
RAIS
3.2
|
00001 00028 using System; 00029 using System.Data; 00030 using System.Configuration; 00031 using System.Collections; 00032 using System.Collections.Generic; 00033 using System.Web; 00034 using System.Web.Security; 00035 using System.Text.RegularExpressions; 00036 using System.Web.UI; 00037 using System.Web.UI.WebControls; 00038 using System.Web.UI.WebControls.WebParts; 00039 using System.Web.UI.HtmlControls; 00040 00041 using RAIS.ApplicationLogicLayer; 00042 using RAIS.Common.UserManagement; 00043 00044 using FunctionRoles = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRole>; 00045 using DataRoles = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.DataRole>; 00046 using Facilities = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Facility>; 00047 using UserTypes = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.UserTypeData>; 00048 00049 namespace RAIS.UI.SpecificMasks 00050 { 00054 public partial class AddEditUsers_New : System.Web.UI.Page 00055 { 00059 enum User_PageMode 00060 { 00061 viewUser, 00062 addUser, 00063 editUser 00064 }; 00065 00066 const string strFacility = "Facility"; 00067 const string strDataRole = "DataRole"; 00068 //********************************************************************* 00069 #region Event handlers 00070 protected void Page_PreLoad(object sender, EventArgs e) 00071 { 00072 RAIS.UI.Common.PageManagement.TrimTextBoxValues(this); 00073 } 00080 protected void Page_Load(object sender, EventArgs e) 00081 { 00082 this.Response.Cache.SetNoStore(); 00083 if (this.CurrentUser == null) 00084 UI.Common.AccessManagement.SignOut(this); 00085 00086 this.LBLresult.Text = string.Empty; 00087 if (!this.IsPostBack) 00088 { 00089 this.LBLusernameNoTranslation.Text = this.CurrentUser.Name; 00090 00091 this.BTNdelete.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.DELETE_QUESTION_USER.Replace("'", "\\'"))); 00092 this.BTNlock.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.DELETE_QUESTION_USER.Replace("'", "\\'"))); 00093 this.BTNactivate.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.ACTIVATE_QUESTION_USER.Replace("'", "\\'"))); 00094 this.BTNreject.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.REJECT_REQUEST_QUESTION_USER.Replace("'", "\\'"))); 00095 00096 this.InitializeControls(); 00097 00098 UI.Common.UserManagement.InitializeUsersListBox(this.LBselecteduser); 00099 //UI.Common.UserManagement.InitializeUserTypesList(this.DDLaputype); 00100 UI.Common.UserManagement.InitializeUserTypesList(this.DDLusertype); 00101 UI.Common.UserManagement.InitializeDataRolesListPlusEmptyRow(this.DDLeuselectdatarole); 00102 UI.Common.UserManagement.InitializeFacilitiesListPlusEmptyRow(this.DDLeuselectfacility); 00103 //UI.Common.UserManagement.InitializeFunctionalRolesListByUserType(this.DDLeufunctionalrole, this.SelectedUserType); 00104 UI.Common.UserManagement.InitializeFunctionalRolesListPlusEmptyRow(this.DDLeufunctionalrole); 00105 00106 //UI.Common.PageManagement.InitializePage(this, this.TreeView1); 00107 UI.Common.PageManagement.InitializePageTreeForCategory(this, this.TreeView1, RAIS.Common.Constants.CATEGORY_NAME_ADMINISTRATION); 00108 // this.LBTNmessagebox.Visible = !(this.CurrentUser.FunctionalRole.Type == FunctionRole.FunctionRoleType.Guest); 00109 TreeView1.Nodes[1].ChildNodes[2].Select(); 00110 00111 this.SelectCurrentUser(); 00112 this.CurrentUser_PageMode = User_PageMode.viewUser; 00113 00114 this.ShowUser(); 00115 this.EnableDisableControls(); 00116 } 00117 UI.Common.PageManagement.InitHelpMainMenu(LBTNdefault); 00118 } 00125 protected void Page_Init(object sender, EventArgs e) 00126 { 00127 Common.PageManagement.SetScrolableListBox(LBselecteduser, this, true); 00128 } 00135 protected void LNKuserStatus_Click(object sender, EventArgs e) 00136 { 00137 this.Session[UI.Common.Constants.SELECTED_USER_TAG] = this.SelectedUser; 00138 this.Response.Redirect(string.Format("~/UserStatus.aspx?id={0}" 00139 , this.SelectedUser.ID)); 00140 } 00147 protected void LBselecteduser_SelectedIndexChanged(object sender, EventArgs e) 00148 { 00149 this.EnableDisableEditDelete(); 00150 this.EnableDisableStatusChangingButtons(); 00151 this.ShowUser(); 00152 this.EnableDisableControls(); 00153 } 00160 protected void DDLeufunctionalrole_SelectedIndexChanged(object sender, EventArgs e) 00161 { 00162 if (this.SelectedFunctionRole!=null && this.SelectedFunctionRole.Type == FunctionRole.FunctionRoleType.Licensee) 00163 { 00164 this.DDLyesno.SelectedValue = strFacility; 00165 this.EnableDisableFacilityDataRole(); 00166 } 00167 } 00174 protected void DDLyesno_SelectedIndexChanged(object sender, EventArgs e) 00175 { 00176 this.EnableDisableFacilityDataRole(); 00177 } 00184 protected void LBTNlogout_Click(object sender, EventArgs e) 00185 { 00186 UI.Common.AccessManagement.SignOut(this); 00187 } 00194 protected void BTNdelete_Click(object sender, EventArgs e) 00195 { 00196 string returnMessage = ""; 00197 00198 UserData userData = this.SelectedUser; 00199 //userData.Locked = true; 00200 userData.Status = UserData.UserStatus.Locked; 00201 00202 bool success = UserManagement.ModifyUser(userData, ref returnMessage); 00203 if (success) 00204 { 00205 returnMessage = RAIS.Common.Messages.USER_REMOVED_LOCKED; 00206 UI.Common.UserManagement.InitializeUsersListBox(this.LBselecteduser); 00207 this.ShowUser(); 00208 } 00209 00210 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, returnMessage, success); 00211 this.EnableDisableEditDelete(); 00212 this.EnableDisableStatusChangingButtons(); 00213 } 00220 protected void BTNaddUser_Click(object sender, EventArgs e) 00221 { 00222 this.ClearUserData(); 00223 this.CurrentUser_PageMode = User_PageMode.addUser; 00224 this.SetFocus(this.TXTeuusername); 00225 } 00232 protected void BTNedit_Click(object sender, EventArgs e) 00233 { 00234 this.CurrentUser_PageMode = User_PageMode.editUser; 00235 this.SetFocus(this.TXTeucompletename); 00236 } 00243 protected void BTNactivate_Click(object sender, EventArgs e) 00244 { 00245 string returnMessage = string.Empty; 00246 00247 UserData userData = this.SelectedUser; 00248 userData.Status = UserData.UserStatus.Active; 00249 SetRoles(userData); 00250 bool success = false; 00251 if (userData.AccountRequest != null) 00252 { 00253 success = AccountRequestAnswer.CheckAdministratorEmailAccountSettings(ref returnMessage); 00254 success = UserManagement.ModifyUser(userData, ref returnMessage); 00255 if (success) 00256 success = UserManagement.ReleaseAccountRequest(userData, ref returnMessage); 00257 } 00258 else 00259 { 00260 success = UserManagement.ModifyUser(userData, ref returnMessage); 00261 } 00262 00263 if (success) 00264 { 00265 returnMessage = RAIS.Common.Messages.USER_ACTIVATED; 00266 if (userData.AccountRequest != null && ValidateEmail(userData.Email)) 00267 success = AccountRequestAnswer.SendReleaseMessage(userData.Email, ref returnMessage); 00268 00269 UI.Common.UserManagement.InitializeUsersListBox(this.LBselecteduser); 00270 this.LBselecteduser.SelectedValue = userData.Login; 00271 this.ShowUser(); 00272 } 00273 00274 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, returnMessage, success); 00275 this.EnableDisableEditDelete(); 00276 this.EnableDisableStatusChangingButtons(); 00277 this.EnableDisableControls(); 00278 } 00285 protected void BTNreject_Click(object sender, EventArgs e) 00286 { 00287 string returnMessage = string.Empty; 00288 00289 UserData userData = this.SelectedUser; 00290 //userData.Status = UserData.UserStatus.Locked; 00291 00292 bool success = AccountRequestAnswer.CheckAdministratorEmailAccountSettings(ref returnMessage); 00293 if (success) 00294 success = UserManagement.RejectAccountRequest(userData, ref returnMessage); 00295 00296 if (success) 00297 { 00298 returnMessage = RAIS.Common.Messages.USER_ACCOUNT_REQUEST_REJECTED; 00299 if(ValidateEmail(userData.Email)) 00300 success = AccountRequestAnswer.SendRejectMessage(userData.Email, ref returnMessage); 00301 00302 UI.Common.UserManagement.InitializeUsersListBox(this.LBselecteduser); 00303 this.LBselecteduser.SelectedValue = userData.Login; 00304 this.ShowUser(); 00305 } 00306 00307 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, returnMessage, success); 00308 this.EnableDisableEditDelete(); 00309 this.EnableDisableStatusChangingButtons(); 00310 this.EnableDisableControls(); 00311 } 00318 protected void BTNlock_Click(object sender, EventArgs e) 00319 { 00320 string returnMessage = string.Empty; 00321 00322 UserData userData = this.SelectedUser; 00323 //userData.Locked = true; 00324 userData.Status = UserData.UserStatus.Locked; 00325 SetRoles(userData); 00326 bool success = UserManagement.ModifyUser(userData, ref returnMessage); 00327 if (success) 00328 { 00329 returnMessage = RAIS.Common.Messages.USER_REMOVED_LOCKED; 00330 UI.Common.UserManagement.InitializeUsersListBox(this.LBselecteduser); 00331 this.LBselecteduser.SelectedValue = userData.Login; 00332 this.ShowUser(); 00333 } 00334 00335 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, returnMessage, success); 00336 this.EnableDisableEditDelete(); 00337 this.EnableDisableStatusChangingButtons(); 00338 this.EnableDisableControls(); 00339 } 00346 protected void BTNsaveChanges_Click(object sender, EventArgs e) 00347 { 00348 string actionMessage = ""; 00349 bool success = this.ValidateData(ref actionMessage); 00350 if (success) 00351 { 00352 if (this.CurrentUser_PageMode == User_PageMode.editUser) 00353 { 00354 UserData userData = this.SelectedUser; 00355 userData = this.GetUserDataFromMask(userData); 00356 success = UserManagement.ModifyUser(userData, ref actionMessage); 00357 } 00358 else 00359 { 00360 UserData userData = this.GetUserDataFromMask(null); 00361 success = UserManagement.AddUser(userData, ref actionMessage); 00362 if (!success && ApplicationLogicLayer.UserManagement.UserExists(this.TXTeuusername.Text, ref actionMessage)) 00363 {// previously deleted user recovered?? 00364 UserData user = ApplicationLogicLayer.UserManagement.GetUserData(this.TXTeuusername.Text); 00365 if (user.Locked) 00366 success = this.RecoverLockedUser(user, ref actionMessage); 00367 } 00368 00369 if (success) 00370 { 00371 UI.Common.UserManagement.InitializeUsersListBox(this.LBselecteduser); 00372 this.LBselecteduser.SelectedValue = userData.Login; 00373 this.ShowUser(); 00374 } 00375 } 00376 00377 if (success) 00378 { 00379 this.CurrentUser_PageMode = User_PageMode.viewUser; 00380 this.SetFocus(LBselecteduser); 00381 } 00382 } 00383 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, actionMessage, success); 00384 } 00391 protected void BTNdiscard_Click(object sender, EventArgs e) 00392 { 00393 this.ShowUser(); 00394 this.CurrentUser_PageMode = User_PageMode.viewUser; 00395 this.SetFocus(LBselecteduser); 00396 } 00403 protected void DDLaputype_SelectedIndexChanged(object sender, EventArgs e) 00404 { 00405 UI.Common.UserManagement.InitializeFunctionalRolesListByUserType(this.DDLeufunctionalrole, this.SelectedUserType); 00406 } 00413 protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) 00414 { 00415 UI.Common.UserManagement.ProcessTreeViewOnRedirect(this.TreeView1); 00416 } 00417 #endregion 00418 //********************************************************************* 00419 #region Private helper methods 00420 00421 00422 00423 00424 00425 bool ValidateEmail(string email) 00426 { 00427 Regex re = new Regex("^['\\w_-]+(\\.['\\w_-]+)*@['\\w_-]+(\\.['\\w_-]+)*\\.[a-zA-Z]{2,4}$"); 00428 return re.IsMatch(email); 00429 } 00433 void InitializeControls() 00434 { 00435 this.DDLyesno.Items.Add(new ListItem("Yes", strFacility)); 00436 this.DDLyesno.Items.Add(new ListItem("No", strDataRole)); 00437 } 00444 void ShowUser() 00445 { 00446 UserData user = this.SelectedUser; 00447 00448 if (user == null) 00449 { 00450 ClearUserData(); 00451 return; 00452 } 00453 00454 this.DDLaputype.SelectedValue = user.TypeText; 00455 //UI.Common.UserManagement.InitializeFunctionalRolesListByUserType(this.DDLeufunctionalrole, this.SelectedUserType); 00456 //ListItem listItem = null; 00457 //if (user.FunctionalRole != null) 00458 // listItem = this.DDLeufunctionalrole.Items.FindByText(user.FunctionalRole.Name); 00459 //if (listItem != null) 00460 // this.DDLeufunctionalrole.SelectedValue = user.FunctionalRole.Name; 00461 00462 this.DDLusertype.SelectedValue = user.TypeText; 00463 if (user.AccountRequest != null) 00464 this.TXTcomments.Text = user.AccountRequest.Comment; 00465 00466 if (user.FunctionalRole != null) 00467 this.DDLeufunctionalrole.SelectedValue = user.FunctionalRole.Name; 00468 else 00469 this.DDLeufunctionalrole.SelectedValue = string.Empty; 00470 00471 this.DDLeuselectdatarole.SelectedValue = 00472 (user.DataRole == null) ? string.Empty: user.DataRole.Name; 00473 //this.DDLyesno.SelectedValue = strDataRole; 00474 00475 this.DDLeuselectfacility.SelectedValue = 00476 (user.Facility == null) ? string.Empty : user.Facility.Name; 00477 this.DDLyesno.SelectedValue = (user.FacilitySpecified) ? strFacility : strDataRole; 00478 00479 this.EnableDisableFacilityDataRole(); 00480 00481 this.TXTeuusername.Text = user.Login; 00482 this.TXTeupassword.Text = user.Password; 00483 this.TXTconfirmpassword.Text = user.Password; 00484 00485 this.TXTeucompletename.Text = user.CompleteName; 00486 this.TXTeuemailaddress.Text = user.Email; 00487 this.TXTaddress1.Text = user.AddressLine1; 00488 this.TXTaddress2.Text = user.AddressLine2; 00489 this.TXTaddress3.Text = user.AddressLine3; 00490 this.TXTcity.Text = user.City; 00491 this.TXTpostcode.Text = user.PostCode; 00492 //this.TXTuserstatus.Text = user.StatusData.VisibleName; 00493 this.LBLuserstatusvalue.Text = user.StatusData.VisibleName; 00494 } 00498 void ClearUserData() 00499 { 00500 if (this.DDLeufunctionalrole.Items.Count!=0) 00501 this.DDLeufunctionalrole.SelectedIndex = 0; 00502 00503 this.TXTeuusername.Text = ""; 00504 00505 this.TXTeupassword.Text = ""; 00506 this.TXTconfirmpassword.Text = ""; 00507 00508 this.TXTeucompletename.Text = ""; 00509 this.TXTeuemailaddress.Text = ""; 00510 this.TXTaddress1.Text = ""; 00511 this.TXTaddress2.Text = ""; 00512 this.TXTaddress3.Text = ""; 00513 this.TXTcity.Text = ""; 00514 this.TXTpostcode.Text = ""; 00515 00516 this.DDLyesno.SelectedValue = strFacility; 00517 this.LBLuserstatusvalue.Text = UserData.UserStatuses[UserData.UserStatus.NotActive].VisibleName; 00518 } 00522 void EnableDisableControls() 00523 { 00524 this.LNKuserStatus.Enabled = this.CurrentUser_PageMode == User_PageMode.viewUser 00525 && !this.ReleaseRejectSubmode 00526 && this.SelectedUser != null; 00527 this.LBselecteduser.Enabled = this.CurrentUser_PageMode == User_PageMode.viewUser && !this.ReleaseRejectSubmode; 00528 00529 this.BTNsaveChanges.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser; 00530 this.BTNdiscard.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser; 00531 this.BTNaddUser.Enabled = this.CurrentUser_PageMode == User_PageMode.viewUser && !this.ReleaseRejectSubmode; 00532 00533 this.TXTeuusername.Enabled = (this.CurrentUser_PageMode == User_PageMode.addUser); 00534 00535 //this.BTNdelete.Visible = this.CurrentUser_PageMode != User_PageMode.addUser; 00536 00537 this.DDLaputype.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser; 00538 this.DDLusertype.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser;// (this.SelectedUser.Status == UserData.UserStatus.NotActive); 00539 //this.LBLusertype.Visible = this.DDLusertype.Visible; 00540 //this.TXTcomments.Visible = this.DDLusertype.Visible; 00541 //this.LBLcomments.Visible = this.TXTcomments.Visible; 00542 00543 this.DDLeufunctionalrole.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser; 00544 //this.DDLeufunctionalrole.Visible = (UserData.UserTypes[DDLusertype.SelectedValue].GetDefaultFunctionalRole() == null); 00545 00546 this.DDLeuselectdatarole.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser; 00547 00548 this.DDLeuselectfacility.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser; 00549 00550 this.TXTeucompletename.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser; 00551 this.TXTeuemailaddress.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser; 00552 00553 this.TXTeupassword.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser 00554 && (this.CurrentUser_PageMode == User_PageMode.addUser 00555 || this.SelectedUser.FunctionalRole == null 00556 || this.SelectedUser.FunctionalRole.Type != FunctionRole.FunctionRoleType.Guest); 00557 this.TXTconfirmpassword.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser 00558 && (this.CurrentUser_PageMode == User_PageMode.addUser 00559 || this.SelectedUser.FunctionalRole == null 00560 || this.SelectedUser.FunctionalRole.Type != FunctionRole.FunctionRoleType.Guest); 00561 this.TXTaddress1.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser; 00562 this.TXTaddress2.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser; 00563 this.TXTaddress3.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser; 00564 this.TXTcity.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser; 00565 this.TXTpostcode.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser; 00566 00567 this.DDLyesno.Enabled = this.CurrentUser_PageMode != User_PageMode.viewUser; 00568 00569 this.EnableDisableEditDelete(); 00570 this.EnableDisableStatusChangingButtons(); 00571 this.EnableDisableFacilityDataRole(); 00572 00573 UI.Common.UserManagement.EnableCommonControls(this, this.CurrentUser_PageMode == User_PageMode.viewUser); 00574 00575 this.LBLadmin.ForeColor = RAIS.UI.Common.Constants.COLOR_OF_MENU_BAR_TEXT_HIGHLIGHT; 00576 00577 DDLyesno.Parent.Parent.Visible = UserData.UserTypes[DDLusertype.SelectedValue].IsFacility() 00578 && UserData.UserTypes[DDLusertype.SelectedValue].IsDataRole(); 00579 this.DDLyesno.Visible = UserData.UserTypes[DDLusertype.SelectedValue].IsFacility() 00580 && UserData.UserTypes[DDLusertype.SelectedValue].IsDataRole(); 00581 00582 DDLeuselectdatarole.Parent.Parent.Visible = (UserData.UserTypes[DDLusertype.SelectedValue].IsDataRole() && !this.DDLyesno.Visible) || 00583 (this.DDLyesno.Visible && this.DDLyesno.SelectedValue == strDataRole); 00584 00585 this.DDLeuselectdatarole.Visible = (UserData.UserTypes[DDLusertype.SelectedValue].IsDataRole() && !this.DDLyesno.Visible) || 00586 (this.DDLyesno.Visible && this.DDLyesno.SelectedValue == strDataRole); ; 00587 00588 DDLeuselectfacility.Parent.Parent.Visible = (UserData.UserTypes[DDLusertype.SelectedValue].IsFacility()&& !this.DDLyesno.Visible) || 00589 (this.DDLyesno.Visible && this.DDLyesno.SelectedValue != strDataRole); ; 00590 this.DDLeuselectfacility.Visible = (UserData.UserTypes[DDLusertype.SelectedValue].IsFacility() && !this.DDLyesno.Visible) || 00591 (this.DDLyesno.Visible && this.DDLyesno.SelectedValue != strDataRole); ; 00592 00593 DDLeufunctionalrole.Parent.Parent.Visible = UserData.UserTypes[DDLusertype.SelectedValue].GetDefaultFunctionalRole() == null; 00594 this.DDLeufunctionalrole.Visible = UserData.UserTypes[DDLusertype.SelectedValue].GetDefaultFunctionalRole() == null; 00595 00596 this.LBLselectdatarole.Visible = this.DDLeuselectdatarole.Visible; 00597 this.LBLselectfacility.Visible = this.DDLeuselectfacility.Visible; 00598 this.LBLconnected.Visible = this.DDLyesno.Visible; 00599 this.LBLeufunctionalrole.Visible = this.DDLeufunctionalrole.Visible; 00600 } 00604 void EnableDisableEditDelete() 00605 { 00606 this.BTNedit.Enabled = this.CurrentUser_PageMode == User_PageMode.viewUser && this.SelectedUser != null; 00607 this.BTNdelete.Enabled = this.CurrentUser_PageMode == User_PageMode.viewUser && !this.ReleaseRejectSubmode && this.SelectedUser != null; 00608 } 00612 void EnableDisableStatusChangingButtons() 00613 { 00614 this.BTNactivate.Enabled = (this.CurrentUser_PageMode == User_PageMode.viewUser) 00615 && ((this.SelectedUser.Status == UserData.UserStatus.NotActive) 00616 || (this.SelectedUser.Status == UserData.UserStatus.Locked)); 00617 00618 this.BTNreject.Enabled = (this.CurrentUser_PageMode == User_PageMode.viewUser) 00619 && ((this.SelectedUser.Status == UserData.UserStatus.NotActive) 00620 || (this.SelectedUser.Status == UserData.UserStatus.Locked)) 00621 && this.SelectedUser.AccountRequest != null; 00622 00623 this.BTNlock.Enabled = (this.CurrentUser_PageMode == User_PageMode.viewUser) 00624 && !this.ReleaseRejectSubmode 00625 && (this.SelectedUser.Status != UserData.UserStatus.Locked); 00626 } 00630 void EnableDisableFacilityDataRole() 00631 { 00632 if (this.DDLyesno.SelectedValue == strDataRole) 00633 { 00634 this.LBLselectfacility.Visible = false; 00635 this.DDLeuselectfacility.Visible = false; 00636 DDLeuselectdatarole.Parent.Parent.Visible = true; 00637 this.LBLselectdatarole.Visible = true; 00638 this.DDLeuselectdatarole.Visible = true; 00639 } 00640 else 00641 { 00642 LBLselectfacility.Parent.Parent.Visible = true; 00643 this.LBLselectfacility.Visible = true; 00644 this.DDLeuselectfacility.Visible = true; 00645 this.LBLselectdatarole.Visible = false; 00646 this.DDLeuselectdatarole.Visible = false; 00647 } 00648 00649 } 00656 bool ValidateData(ref string returnMessage) 00657 { 00658 if (!this.ValidateUserName(ref returnMessage)) 00659 return false; 00660 if (!this.ValidateFunctionRole(ref returnMessage)) 00661 return false; 00662 else 00663 return this.ValidatePassword(ref returnMessage); 00664 } 00671 bool ValidateUserName(ref string returnMessage) 00672 { 00673 if (this.TXTeuusername.Text.Length == 0) 00674 { 00675 returnMessage = RAIS.Common.Messages.USER_NAME_EMPTY; 00676 return false; 00677 } 00678 else 00679 return true; 00680 } 00687 bool ValidatePassword(ref string returnMessage) 00688 { 00689 if (this.TXTeupassword.Text.Length != 0) 00690 {//there was intention to change or to set the password 00691 if (this.TXTeupassword.Text == this.TXTconfirmpassword.Text) 00692 return true; 00693 else 00694 { 00695 returnMessage = RAIS.Common.Messages.PASSWORD_MISMATCH; 00696 return false; 00697 } 00698 } 00699 else 00700 return true; 00701 } 00708 bool ValidateFunctionRole(ref string returnMessage) 00709 { 00710 if (this.SelectedFunctionRole == null && 00711 UserData.UserTypes[DDLusertype.SelectedValue].GetDefaultFunctionalRole() == null) 00712 { 00713 returnMessage = RAIS.Common.Messages.FUNCTION_ROLE_IS_MANDATORY; 00714 return false; 00715 } 00716 else 00717 return true; 00718 } 00727 UserData GetUserDataFromMask(UserData userData) 00728 { 00729 if (userData == null) 00730 userData = new UserData(); 00731 00732 switch (this.CurrentUser_PageMode) 00733 { 00734 case User_PageMode.addUser: userData.Login = this.TXTeuusername.Text; break; 00735 case User_PageMode.editUser: userData.Login = this.LBselecteduser.SelectedValue; break; 00736 } 00737 00738 userData.TypeText = this.DDLusertype.SelectedValue; 00739 00740 if (this.TXTeupassword.Text.Length != 0) //blank password is not allowed 00741 userData.Password = this.TXTeupassword.Text; 00742 00743 userData.CompleteName = this.TXTeucompletename.Text; 00744 userData.Email = this.TXTeuemailaddress.Text; 00745 userData.AddressLine1 = this.TXTaddress1.Text; 00746 userData.AddressLine2 = this.TXTaddress2.Text; 00747 userData.AddressLine3 = this.TXTaddress3.Text; 00748 userData.City = this.TXTcity.Text; 00749 userData.PostCode = this.TXTpostcode.Text; 00750 00751 00752 SetRoles(userData); 00753 //userData.Status = UserData.UserStatus.Active; 00754 00755 return userData; 00756 } 00757 void SetRoles(UserData userData) 00758 { 00759 if (UserData.UserTypes[DDLusertype.SelectedValue].GetDefaultFunctionalRole() == null) 00760 userData.FunctionalRole = this.SelectedFunctionRole; 00761 else 00762 userData.FunctionalRole = GetFunctionRoleByName(UserData.UserTypes[DDLusertype.SelectedValue].GetDefaultFunctionalRole()); 00763 00764 if (UserData.UserTypes[DDLusertype.SelectedValue].GetDefaultDataRole() != null) 00765 { 00766 userData.DataRoleType = (int)UserData.DataRoleIndication.DataRole; 00767 userData.DataRole = GetDataRoleByName(UserData.UserTypes[DDLusertype.SelectedValue].GetDefaultDataRole()); 00768 userData.Facility = null; 00769 return; 00770 } 00771 00772 if (UserData.UserTypes[DDLusertype.SelectedValue].IsFacility() 00773 && !UserData.UserTypes[DDLusertype.SelectedValue].IsDataRole()) 00774 { 00775 userData.DataRoleType = (int)UserData.DataRoleIndication.Facility; 00776 userData.Facility = this.SelectedFacility; 00777 userData.DataRole = null; 00778 return; 00779 } 00780 if (!UserData.UserTypes[DDLusertype.SelectedValue].IsFacility() 00781 && UserData.UserTypes[DDLusertype.SelectedValue].IsDataRole()) 00782 { 00783 userData.DataRoleType = (int)UserData.DataRoleIndication.DataRole; 00784 userData.DataRole = this.SelectedDataRole; 00785 userData.Facility = null; 00786 return; 00787 } 00788 00789 if (this.DDLyesno.SelectedValue == strFacility) 00790 { 00791 userData.DataRoleType = (int)UserData.DataRoleIndication.Facility; 00792 userData.Facility = this.SelectedFacility; 00793 userData.DataRole = null; 00794 } 00795 else 00796 { 00797 userData.DataRoleType = (int)UserData.DataRoleIndication.DataRole; 00798 userData.DataRole = this.SelectedDataRole; 00799 userData.Facility = null; 00800 } 00801 } 00806 bool RecoverLockedUser(UserData user, ref string returnMessage) 00807 { 00808 //user.Locked = false; 00809 user.Status = UserData.UserStatus.Active; 00810 bool success = ApplicationLogicLayer.UserManagement.ModifyUser(user, ref returnMessage); 00811 if (success) 00812 { 00813 returnMessage = RAIS.Common.Messages.RESTORED_LOCKED_USER; 00814 } 00815 return success; 00816 } 00821 bool CreateNewTemporalUser() 00822 { 00823 string returnMessage = ""; 00824 bool success = !ApplicationLogicLayer.UserManagement.UserExists(this.TXTeuusername.Text, ref returnMessage); 00825 00826 if (success) 00827 { 00828 this.CurrentUser_PageMode = User_PageMode.addUser; 00829 this.TXTeupassword.Text = ""; 00830 this.TXTconfirmpassword.Text = ""; 00831 this.TXTeucompletename.Text = ""; 00832 this.TXTeuemailaddress.Text = ""; 00833 } 00834 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, returnMessage, success); 00835 return success; 00836 } 00840 void SelectCurrentUser() 00841 { 00842 //this.ReleaseRejectSubmode = false; 00843 00844 if (this.UserID == 0) 00845 this.LBselecteduser.SelectedIndex = 0; 00846 else 00847 { 00848 string userName = string.Empty; 00849 foreach (KeyValuePair<string, UserData> kvp in RAIS.ApplicationLogicLayer.UserManagement.Users) 00850 if (kvp.Value.ID == this.UserID) 00851 { 00852 userName = kvp.Value.Login; 00853 break; 00854 } 00855 00856 ListItem listItem = null; 00857 if (userName != string.Empty) 00858 { 00859 listItem = this.LBselecteduser.Items.FindByText(userName); 00860 } 00861 if (listItem != null) 00862 { 00863 listItem.Selected = true; 00864 //this.ReleaseRejectSubmode = true; 00865 } 00866 } 00867 } 00868 00869 FunctionRole GetFunctionRoleByName(string name) 00870 { 00871 FunctionRoles functionRoles = (FunctionRoles)this.Session[RAIS.UI.Common.Constants.FUNCTION_ROLES_TAG]; 00872 if (functionRoles != null && functionRoles.ContainsKey(name)) 00873 return functionRoles[name]; 00874 else 00875 return null; 00876 } 00877 00878 DataRole GetDataRoleByName(string name) 00879 { 00880 DataRoles dataRoles = (DataRoles)this.Session[UI.Common.Constants.DATA_ROLES_TAG]; 00881 if (dataRoles != null && !string.IsNullOrEmpty(name)) 00882 return dataRoles[name]; 00883 else 00884 return null; 00885 } 00886 #endregion 00887 //********************************************************************* 00888 #region Properties 00889 00892 private UserData SelectedUser 00893 { 00894 get 00895 { 00896 try 00897 { 00898 UserData userData = ApplicationLogicLayer.UserManagement.GetUserData(this.LBselecteduser.SelectedValue); 00899 return userData; 00900 } 00901 catch (Exception) 00902 { 00903 return null; 00904 } 00905 } 00906 } 00910 private FunctionRole SelectedFunctionRole 00911 { 00912 get 00913 { 00914 return GetFunctionRoleByName(this.DDLeufunctionalrole.SelectedValue); 00915 } 00916 } 00920 private DataRole SelectedDataRole 00921 { 00922 get 00923 { 00924 return GetDataRoleByName(this.DDLeuselectdatarole.SelectedValue); 00925 } 00926 } 00930 private Facility SelectedFacility 00931 { 00932 get 00933 { 00934 Facilities facilities = RAIS.ApplicationLogicLayer.UserManagement.Facilities; 00935 if (facilities != null && !string.IsNullOrEmpty(this.DDLeuselectfacility.SelectedValue)) 00936 return facilities[this.DDLeuselectfacility.SelectedValue]; 00937 else 00938 return null; 00939 } 00940 } 00944 private User_PageMode CurrentUser_PageMode 00945 { 00946 get 00947 { 00948 if (this.Session[UI.Common.Constants.ADD_EDIT_USER_PAGE_MODE_TAG] != null) 00949 { 00950 return (User_PageMode)this.Session[UI.Common.Constants.ADD_EDIT_USER_PAGE_MODE_TAG]; 00951 } 00952 else 00953 return User_PageMode.viewUser; 00954 } 00955 set 00956 { 00957 string message; 00958 switch (value) 00959 { 00960 case User_PageMode.addUser: message = RAIS.Common.Messages.ADDING_NEW_USER; break; 00961 case User_PageMode.editUser: message = RAIS.Common.Messages.EDITTING_EXISTING_USER; break; 00962 default: message = ""; break; 00963 } 00964 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, message, true); 00965 this.Session[UI.Common.Constants.ADD_EDIT_USER_PAGE_MODE_TAG] = value; 00966 this.EnableDisableControls(); 00967 } 00968 } 00972 private UserTypeData SelectedUserType 00973 { 00974 get 00975 { 00976 UserTypes userTypes = RAIS.ApplicationLogicLayer.UserManagement.UserTypes; 00977 if (userTypes != null) 00978 return userTypes[this.DDLaputype.SelectedValue]; 00979 else 00980 return null; 00981 } 00982 } 00986 protected UserData CurrentUser 00987 { 00988 get { return (UserData)this.Session[UI.Common.Constants.CURRENT_USER_TAG]; } 00989 } 00993 protected int UserID 00994 { 00995 get 00996 { 00997 return (Request[RAIS.UI.Common.Constants.USER_ID_PARAMETER_NAME] == null) 00998 ? 0 00999 : int.Parse(Request[RAIS.UI.Common.Constants.USER_ID_PARAMETER_NAME]); 01000 } 01001 } 01005 protected bool ReleaseRejectSubmode 01006 { 01007 get 01008 { 01009 //if (this.Session[RAIS.UI.Common.Constants.RELEASE_REJECT_SUBMODE_TAG] != null) 01010 // return (bool)(this.Session[RAIS.UI.Common.Constants.RELEASE_REJECT_SUBMODE_TAG]); 01011 //else 01012 // return false; 01013 return (Request[RAIS.UI.Common.Constants.RELEASE_REJECT_SUBMODE_PARAMETER_NAME] == null) 01014 ? false 01015 : (Request[RAIS.UI.Common.Constants.RELEASE_REJECT_SUBMODE_PARAMETER_NAME] 01016 == RAIS.UI.Common.Constants.RELEASE_REJECT_PARAMETER_VALUE); 01017 } 01018 set 01019 { 01020 this.Session[RAIS.UI.Common.Constants.RELEASE_REJECT_SUBMODE_TAG] = value; 01021 } 01022 } 01023 #endregion 01024 01025 protected void DDLusertype_SelectedIndexChanged(object sender, EventArgs e) 01026 { 01027 EnableDisableControls(); 01028 } 01029 } 01030 }